<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>SystemSharp: SystemSharp.Assembler.DesignGen.IInterconnectBuilder Interface Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">SystemSharp
   &#160;<span id="projectnumber">0.3</span>
   </div>
   <div id="projectbrief">A system-level modeling framework for designing real-time embedded systems</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Packages</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('interface_system_sharp_1_1_assembler_1_1_design_gen_1_1_i_interconnect_builder.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Events</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="interface_system_sharp_1_1_assembler_1_1_design_gen_1_1_i_interconnect_builder-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">SystemSharp.Assembler.DesignGen.IInterconnectBuilder Interface Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Generic interface of interconnect builder algorithms  
 <a href="interface_system_sharp_1_1_assembler_1_1_design_gen_1_1_i_interconnect_builder.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for SystemSharp.Assembler.DesignGen.IInterconnectBuilder:</div>
<div class="dyncontent">
 <div class="center">
  <img src="interface_system_sharp_1_1_assembler_1_1_design_gen_1_1_i_interconnect_builder.png" usemap="#SystemSharp.Assembler.DesignGen.IInterconnectBuilder_map" alt=""/>
  <map id="SystemSharp.Assembler.DesignGen.IInterconnectBuilder_map" name="SystemSharp.Assembler.DesignGen.IInterconnectBuilder_map">
<area href="class_system_sharp_1_1_assembler_1_1_design_gen_1_1_h_clust_interconnect_builder.html" title="This interconnect builder is based on a hierarchical clustering algorithm which takes some heuristic ..." alt="SystemSharp.Assembler.DesignGen.HClustInterconnectBuilder" shape="rect" coords="0,56,385,80"/>
<area href="class_system_sharp_1_1_assembler_1_1_design_gen_1_1_max_reg_interconnect_builder.html" title="This trivial interconnect builder assigns each data transfer to an individual register. It is intended as a &quot;null hypothesis&quot; performance comparisons between different interconnect builders and should not be used in practice. " alt="SystemSharp.Assembler.DesignGen.MaxRegInterconnectBuilder" shape="rect" coords="395,56,780,80"/>
<area href="class_system_sharp_1_1_assembler_1_1_design_gen_1_1_min_reg_interconnect_builder.html" title="This interconnect builder shares data transfers in a single register whenever possible, i.e. when the lifetimes of the respective transfers do not overlap. It is based on the famous left-edge algorithm. " alt="SystemSharp.Assembler.DesignGen.MinRegInterconnectBuilder" shape="rect" coords="790,56,1175,80"/>
<area href="class_system_sharp_1_1_assembler_1_1_design_gen_1_1_slim_mux_interconnect_builder.html" title="This interconnect builder is based on the assumption that the fan-in of the largest multiplexer limit..." alt="SystemSharp.Assembler.DesignGen.SlimMuxInterconnectBuilder" shape="rect" coords="1185,56,1570,80"/>
<area href="class_system_sharp_1_1_assembler_1_1_design_gen_1_1_stage_plex_interconnect_builder.html" title="This interconnect builder is based on the HClustInterconnectBuilder. As a preprocessing step..." alt="SystemSharp.Assembler.DesignGen.StagePlexInterconnectBuilder" shape="rect" coords="1580,56,1965,80"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a6384a47606340a23890d8474d8c3bc3e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_system_sharp_1_1_assembler_1_1_design_gen_1_1_i_interconnect_builder.html#a6384a47606340a23890d8474d8c3bc3e">CreateInterconnect</a> (<a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html">FlowMatrix</a> flowSpec, <a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html">FlowMatrix</a> detailedFlow)</td></tr>
<tr class="memdesc:a6384a47606340a23890d8474d8c3bc3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs interconnect based on a flow matrix  <a href="#a6384a47606340a23890d8474d8c3bc3e">More...</a><br/></td></tr>
<tr class="separator:a6384a47606340a23890d8474d8c3bc3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Generic interface of interconnect builder algorithms </p>
<p>Interconnect construction follows scheduling and resource allocation during high-level synthesis. An implementation a such an algorithm essentially takes a specification of timed data flows between functional units as input and allocates registers to implement those data flows. The input flow matrix therefore contains flows to abstract data endpoints, which must be replaced by flows to concrete registers by the algorithm. A famous example is the wire routing algorithm of Hashimoto and Stevens which minimizes the number of required registers when applied to interconnect allocation. </p>

<p>Definition at line <a class="el" href="_builder_interfaces_8cs_source.html#l00053">53</a> of file <a class="el" href="_builder_interfaces_8cs_source.html">BuilderInterfaces.cs</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a6384a47606340a23890d8474d8c3bc3e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SystemSharp.Assembler.DesignGen.IInterconnectBuilder.CreateInterconnect </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html">FlowMatrix</a>&#160;</td>
          <td class="paramname"><em>flowSpec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_system_sharp_1_1_assembler_1_1_flow_matrix.html">FlowMatrix</a>&#160;</td>
          <td class="paramname"><em>detailedFlow</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructs interconnect based on a flow matrix </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">flowSpec</td><td>input flow matrix describing the timed data flows between functional units</td></tr>
    <tr><td class="paramname">detailedFlow</td><td>output flow matrix describing the timed data flows between functional units and registers</td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="class_system_sharp_1_1_assembler_1_1_design_gen_1_1_h_clust_interconnect_builder.html#a2a1b230b3f22a8a40fdde4991eca9f70">SystemSharp.Assembler.DesignGen.HClustInterconnectBuilder</a>, <a class="el" href="class_system_sharp_1_1_assembler_1_1_design_gen_1_1_min_reg_interconnect_builder.html#a91bba06159fb51db4b4d005545356451">SystemSharp.Assembler.DesignGen.MinRegInterconnectBuilder</a>, <a class="el" href="class_system_sharp_1_1_assembler_1_1_design_gen_1_1_max_reg_interconnect_builder.html#a4444bde6589b8583810b0c7d0f4073cd">SystemSharp.Assembler.DesignGen.MaxRegInterconnectBuilder</a>, <a class="el" href="class_system_sharp_1_1_assembler_1_1_design_gen_1_1_stage_plex_interconnect_builder.html#a5c9d857856b657179785fdde9cf727fb">SystemSharp.Assembler.DesignGen.StagePlexInterconnectBuilder</a>, and <a class="el" href="class_system_sharp_1_1_assembler_1_1_design_gen_1_1_slim_mux_interconnect_builder.html#a49e15b197be20d7a0e27f3b7a9261ae0">SystemSharp.Assembler.DesignGen.SlimMuxInterconnectBuilder</a>.</p>

</div>
</div>
<hr/>The documentation for this interface was generated from the following file:<ul>
<li><a class="el" href="_builder_interfaces_8cs_source.html">BuilderInterfaces.cs</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespace_system_sharp.html">SystemSharp</a></li><li class="navelem"><a class="el" href="namespace_system_sharp_1_1_assembler.html">Assembler</a></li><li class="navelem"><a class="el" href="namespace_system_sharp_1_1_assembler_1_1_design_gen.html">DesignGen</a></li><li class="navelem"><a class="el" href="interface_system_sharp_1_1_assembler_1_1_design_gen_1_1_i_interconnect_builder.html">IInterconnectBuilder</a></li>
    <li class="footer">Generated on Thu Dec 26 2013 14:21:56 for SystemSharp by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
  </ul>
</div>
</body>
</html>
